home *** CD-ROM | disk | FTP | other *** search
/ Xenosoft 2 / Xenosoft 2 (Game collection)(1994).iso / bioforge / script / tunmon.scp < prev    next >
Text File  |  1994-12-01  |  13KB  |  590 lines

  1. // *** TUNROOM MONITOR PROCESSES ***
  2.  
  3. { FACINGPILLARBASE
  4.     P        ~ÇÇ   
  5.     ~ÇÇ    = @Ç│                CURFIG PIL_BASE
  6.     I  ( (~ÇÇ    < -40) OR (~ÇÇ    > 40) ) THEN
  7.         é      0
  8.  
  9.     // CHECK DISTANCE FROM WAY POINT - NOT IMPLEMENTED
  10.     é      1
  11. }
  12.  
  13. // STARTING FROM 'LEFT' SIDE OF PILLAR BASE ....
  14. { TMBOTL_USE
  15.     I  (@Ç¥   FACINGPILLARBASE != 1) THEN
  16.         é     
  17.     A  OFF
  18.     @Ç¥   NEUTRALIZEPILLARBASE                      // SO WON'T GET STUCK
  19.  
  20.     // GOTOTML2
  21.     // TML2 -> TML1 -> TM0
  22.     G  TML2 WALK $âö          
  23.     @Çì      GOTOTML1
  24. }
  25.  
  26. { TMLFT_USE
  27.     I  (@Ç¥   FACINGPILLARBASE != 1) THEN
  28.         é     
  29.     A  OFF
  30.     @Ç¥   NEUTRALIZEPILLARBASE                      // SO WON'T GET STUCK
  31.     @Çì      GOTOTML1
  32. }
  33.  
  34. { GOTOTML1
  35.     // TML1 -> TM0
  36.     G  TML1A WALK $âö          
  37.     G  TML1 WALK $âö          
  38.     @Çì      GOTOTML0
  39. }
  40.  
  41. // STARTING FROM 'RIGHT' SIDE OF PILLAR BASE ....
  42. { TMBOTR_USE
  43.     I  (@Ç¥   FACINGPILLARBASE != 1) THEN
  44.         é     
  45.     A  OFF
  46.     @Ç¥   NEUTRALIZEPILLARBASE                      // SO WON'T GET STUCK
  47.  
  48.     // GOTOTMR2
  49.     // TMR2 -> TMR1 -> TM0
  50.     G  TMR2 WALK $âö          
  51.     @Çì      GOTOTMR1
  52. }
  53.  
  54. { TMRGT_USE
  55.     I  (@Ç¥   FACINGPILLARBASE != 1) THEN
  56.         é     
  57.     A  OFF
  58.     @Ç¥   NEUTRALIZEPILLARBASE                      // SO WON'T GET STUCK
  59.     @Çì      GOTOTMR1
  60. }
  61.  
  62. { GOTOTMR1
  63.     // TMR1 -> TM0
  64.     G  TMR1A WALK $âö          
  65.     G  TMR1 WALK $âö          
  66.     @Çì      GOTOTML0
  67. }
  68.  
  69. { TUBEMON_USE
  70.     I  (@Ç¥   FACINGPILLARBASE != 1) THEN
  71.         é     
  72.     A  OFF
  73.     @Ç¥   NEUTRALIZEPILLARBASE                      // SO WON'T GET STUCK
  74.     @Çì      GOTOTML0
  75. }
  76.  
  77. // GO TO TML0 WAYPOINT AND PROCESS TUBE ACTIVATION MONITOR
  78. { GOTOTML0
  79.     // GO TO WAY POINT, FACE CONSOL, THEN LOOK AT CONSOL
  80.     // IF ALREADY NEAR TM0, JUST STAND THERE
  81.     I  @Ç╗                 CURFIG TM0 > 30 THEN
  82.         G  TM0 WALK $âÆ         
  83.     £    TMFACE GRADUAL
  84.  
  85.     // FIRST MAKE SURE PLAYER IS IN THE CORRECT CAMERA VIEW
  86.     // SHOULD!HAVE TO DO THIS IF WAYPOINT TM0 IS PLACED CORRECTLY IN CAMERA TUN2
  87.     I  @ÇÄ             (TUN2) = $Ç╗    THEN C      TUN2
  88.     ^é╣        = 0
  89.     @Çè               (^é»       ,+1,1,16,3)
  90.     @Çè               (^é░       ,+1,1,16,3)
  91.     @Çì      TUBEMON_UP
  92.     // ALLOW ABOVE PROCESS TO COMPLETE & & BE VISABLE A COUPLE OF SECONDS
  93.     W    60
  94.     M      LOOK_CONSOLE FREEZE
  95.     @Ç¥   TS_TUBEACTIVATIONMONITOR
  96.     @Ç¥   POSITIZEPILLARBASE                        // SET BACK TO POSITIVE SPACE
  97.     G  TM0 $âÆ                              // MAKE SURE BACK WHERE START -!JUMP ON BASE
  98.     £    0
  99.     M      STAND CONTINUE
  100.     @Çè               (^é»       ,-1,16,1,3)
  101.     @Çè               (^é░       ,-1,16,1,3)
  102.     @Çì      TUBEMON_DOWN
  103.     W    60
  104.     ^é╣        = 1
  105.         
  106.     A  ON
  107.  
  108.     C      UNLOCK
  109.  
  110.     W    5 SECONDS
  111.  
  112.     I  ^é║               = 15 THEN
  113.         i           LEX LEXAL
  114.     E   
  115.         {
  116.         I  ^é║               = 3 THEN
  117.             i           LEX TUNPUZ
  118.         E   
  119.             i           LEX TRMON
  120.         }
  121. }
  122.  
  123. { NEUTRALIZEPILLARBASE
  124.     // SO WON'T GET STUCK
  125.     I  (^é╛          != $é╝     ) THEN
  126.     {
  127.         ^é╛          = $é╝     
  128.         ^é┐          = $é╝     
  129.         ^âÇ          = $é╝     
  130.         ^âü          = $é╝     
  131.         ^âé          = $é╝     
  132.     }
  133. }
  134.  
  135. { POSITIZEPILLARBASE
  136.     // SET BACK TO POSITIVE SPACE
  137.     I  (^é╛          != $é╗      ) THEN
  138.     {
  139.         ^é╛          = $é╗      
  140.         ^é┐          = $é╗      
  141.         ^âÇ          = $é╗      
  142.         ^âü          = $é╗      
  143.         ^âé          = $é╗      
  144.     }
  145. }
  146.  
  147. [ TUBEMON_UP
  148.  
  149.     00:00 @Çå   (`ää           ,255,-2048)
  150.     01:00 @Çå   (`üé      ,150,-3072)
  151. ]
  152.  
  153. [ TUBEMON_DOWN
  154.  
  155.     00:00 @Çå   (`ää           ,255,-2048)
  156.     00:00 @Çå   (`üé      ,150,-3072)
  157. ]
  158.  
  159. // *****************   INTERACTIVE MONITOR SECTION   *****************
  160. // 7.35 TUBEWAY STATION/TUBE ACTIVATION MONITOR
  161. // 3/17/94 JAMIE ROOD
  162. // ALLOWS OPENING/CLOSING OF 1 TUBE.
  163. { TS_TUBEACTIVATIONMONITOR
  164.     P        ~ÇÇ
  165.     P        ~Çü
  166.     P        ~Çé
  167.     P        ~Çâ
  168.     P        ~Çä
  169.     P        ~Çà
  170.     P        ~Çå
  171.     P        ~Çç
  172.     P        ~Çê          
  173.     P        ~Çë         
  174.  
  175.     I ( @Çú              () ) THEN é     
  176.  
  177.     // RESET FLAGS
  178.     ~ÇÇ = 0
  179.     ~Çü = 0
  180.     ~Çé = 0
  181.     ~Çâ = 0
  182.     ~Çä = 0
  183.     ~Çà = 0
  184.     ~Çå = 0
  185.     ~Çç = 0
  186.     ~Çê           = 0
  187.     ~Çë          = 0
  188.  
  189.     // THE IDEA IS TO TOGGLE A BUTTONS #1-8 WHEN PRESSED AND USED THEIR
  190.     // UNIQUE COMBINED # TO DERTERMINE THE ART FRAME (PUZZLE SOLVER?)
  191.              "tunm"
  192.  
  193.     J    #ÇÅ          
  194.  
  195.     :LOOP
  196.            
  197.     â      
  198.     J    #ÇÄ 
  199.  
  200.     // ENTER BUTTONS....
  201.     :ENTER_BUTTONS
  202.     m          
  203.     // MAIN SCREEN BUTTONS...
  204.                     "TN1B" "/! " $Ç¡            $Ç▒               
  205.                     "TN2B" "/! " $Ǽ         $Ç▒               
  206.                     "TN3B" "/! " $Ǽ         $Ç▒               
  207.                     "TN4B" "/! " $Ǽ         $Ç▒               
  208.                     "TN5B" "/! " $Ǽ         $Ç▒               
  209.                     "TN6B" "/! " $Ǽ         $Ç▒               
  210.                     "TN7B" "/! " $Ǽ         $Ç▒               
  211.                     "TN8B" "/! " $Ǽ         $Ç▒               
  212.                     "SOLB" "/! " $Ǽ         $Ç▓               
  213.                 "SOLA" ~Çë         
  214.     J    #ÇÄ 
  215.  
  216.     :TN1B_BUTTON
  217.     @Çå   (`äê          , 200, -2048)
  218.     I  ( ~ÇÇ == 0 ) THEN
  219.     {
  220.         ~ÇÇ = 1
  221.     }
  222.     E   
  223.     {
  224.         ~ÇÇ = 0
  225.     }
  226.     J    #Çÿ        
  227.  
  228.     :TN2B_BUTTON
  229.     @Çå   (`äê          , 200, -2048)
  230.     I  ( ~Çü == 0 ) THEN
  231.     {
  232.         ~Çü = 2
  233.     }
  234.     E   
  235.     {
  236.         ~Çü = 0
  237.     }
  238.     J    #Çÿ        
  239.  
  240.     :TN3B_BUTTON
  241.     @Çå   (`äê          , 200, -2048)
  242.     I  ( ~Çé == 0 ) THEN
  243.     {
  244.         ~Çé = 4
  245.     }
  246.     E   
  247.     {
  248.         ~Çé = 0
  249.     }
  250.     J    #Çÿ        
  251.  
  252.     :TN4B_BUTTON
  253.     @Çå   (`äê          , 200, -2048)
  254.     I  ( ~Çâ == 0 ) THEN
  255.     {
  256.         ~Çâ = 8
  257.     }
  258.     E   
  259.     {
  260.         ~Çâ = 0
  261.     }
  262.     J    #Çÿ        
  263.  
  264.     :TN5B_BUTTON
  265.     @Çå   (`äê          , 200, -2048)
  266.     I  ( ~Çä == 0 ) THEN
  267.     {
  268.         ~Çä = 16
  269.     }
  270.     E   
  271.     {
  272.         ~Çä = 0
  273.     }
  274.     J    #Çÿ        
  275.  
  276.     :TN6B_BUTTON
  277.     @Çå   (`äê          , 200, -2048)
  278.     I  ( ~Çà == 0 ) THEN
  279.     {
  280.         ~Çà = 32
  281.     }
  282.     E   
  283.     {
  284.         ~Çà = 0
  285.     }
  286.     J    #Çÿ        
  287.  
  288.     :TN7B_BUTTON
  289.     @Çå   (`äê          , 200, -2048)
  290.     I  ( ~Çå == 0 ) THEN
  291.     {
  292.         ~Çå = 64
  293.     }
  294.     E   
  295.     {
  296.         ~Çå = 0
  297.     }
  298.     J    #Çÿ        
  299.  
  300.     :TN8B_BUTTON
  301.     @Çå   (`äê          , 200, -2048)
  302.     I  ( ~Çç == 0 ) THEN
  303.     {
  304.         ~Çç = 128
  305.     }
  306.     E   
  307.     {
  308.         ~Çç = 0
  309.     }
  310.     J    #Çÿ        
  311.  
  312.     // EACH ONE HAS A UNIQUE BINARY NUMBER
  313.     :CHECKCOMBOS
  314.     // ALL ASSIGNED #S THAT WHEN ADDED ADD UP TO A UNIQUE # FOR EACH
  315.     // COMBINATION
  316.  
  317.     ~Çê           = ~ÇÇ + ~Çü
  318.     ~Çê           += ~Çé
  319.     ~Çê           += ~Çâ
  320.     ~Çê           += ~Çä
  321.     ~Çê           += ~Çà
  322.     ~Çê           += ~Çå
  323.     ~Çê           += ~Çç
  324.  
  325.     // B1 = 1, B2 = 2, B3 = 4, B4 = 8, B5 = 16, B6 = 32, B7 = 64, B8 = 128
  326.     N      ( ~Çê           )
  327.     {
  328.         // _B3_B4_B8
  329.         U    140        // #1 TEMPLE
  330.             ~Çë          = 1
  331.             X ÇÇ 
  332.         // _B4_B5_B8
  333.         U    152        // #2 ZERO-G
  334.             ~Çë          = 2
  335.             X ÇÇ 
  336.         // _B3_B4
  337.         U    12     // #3 GRAVITY RING
  338.             ~Çë          = 3
  339.             X ÇÇ 
  340.         // _B1_B4
  341.         U    9      // #4 DIGSITE
  342.             ~Çë          = 4
  343.             X ÇÇ 
  344.         // _B1_B4_B7
  345.         U    73         // #5 ABOVE TUBE #1
  346.             ~Çë          = 5
  347.             X ÇÇ 
  348.         // _B1_B4_B5
  349.         U    25         // #6 ABOVE TUBE #2
  350.             ~Çë          = 6
  351.             X ÇÇ 
  352.         // _B2_B5_B8
  353.         U    146        // #7 ABOVE TUBE #3
  354.             ~Çë          = 7
  355.             X ÇÇ 
  356.         // _B4_B7
  357.         U    72         // #8 ABOVE TUBE #4
  358.             ~Çë          = 8
  359.             X ÇÇ 
  360.         V      
  361.             ~Çë          = 0
  362.     }
  363.  
  364. // IF SUCCESSFUL, SET _TUBE_MON_FAILURE TO ARBITRARY VALUE
  365.  
  366.     I  ~Çë          != 0 THEN
  367.         ^é║               = 15
  368.  
  369.  
  370.     /// SET FRAME TO THE PROPER ONE FOR THIS COMBINATION
  371.                 "SOLA" ~Çë         
  372.     J    #ÇÄ 
  373.  
  374.     :SOLB_BUTTON
  375.     @Çå   (`䢠         , 200)
  376.         // UPDATE _TUBESOPEN
  377.         c          ^骠       ~Çë         
  378.  
  379.         // SET TNX (TUNNEL ACTIVATION INDICATOR) FRAMES 0 | 1 ACCORDING TO FLAGS
  380.  
  381.         // THE TEMPLE TUBE FLASHES ON/OFF UNTIL WE HAVE RAISED THE STATUE
  382.         //   WITH THE TEMPLE MONITOR.  THIS IS HANDLED AUTOMATICALLY BY
  383.         //   THE PROCESS TEMPLE_TUBE_ANI. -BES
  384.         //_TN1_FRAME = @GETFLAG( _TUBESOPEN, 1 )
  385.         ^é¿        = @ÇÅ     ( ^骠      , 2 )
  386.         ^é▓        = @ÇÅ     ( ^骠      , 2 )
  387.         ^é⌐        = @ÇÅ     ( ^骠      , 3 )
  388.         ^é│        = @ÇÅ     ( ^骠      , 3 )
  389.         ^鬠       = @ÇÅ     ( ^骠      , 4 )
  390.         ^é┤        = @ÇÅ     ( ^骠      , 4 )
  391.         ^âó         = @ÇÅ     ( ^骠      , 4 )
  392.         ^âú         = @ÇÅ     ( ^骠      , 4 )
  393.         ^é½        = @ÇÅ     ( ^骠      , 5 )
  394.         ^é╡        = @ÇÅ     ( ^骠      , 5 )
  395.         ^é¼        = @ÇÅ     ( ^骠      , 6 )
  396.         ^é╢        = @ÇÅ     ( ^骠      , 6 )
  397.         ^é¡        = @ÇÅ     ( ^骠      , 7 )
  398.         ^é╖        = @ÇÅ     ( ^骠      , 7 )
  399.         ^é«        = @ÇÅ     ( ^骠      , 8 )
  400.         ^é╕        = @ÇÅ     ( ^骠      , 8 ) 
  401.         // CONTINUE TO EXIT
  402.  
  403.         // IF WE JUST OPENED/CLOSED SHRIMP TUBE (#8 - ABOVE DIGSITE TUBE)
  404. //              IF (_COMBO_FRAME = 8) THEN
  405.  
  406.         // TAKES AWHILE TO CREATE SHGRIMP SO DO IT WHILE EXITING MONITOR
  407.         @Çì      CHECKACTIVATESHRIMP
  408.  
  409.  
  410.  
  411.     :ESCAPE_BUTTON
  412.         @Çå   (`ëè          , 200, -2048)
  413.  
  414.         I  ^é║               < 3 THEN
  415.             ^é║               ++
  416.  
  417.                
  418.  
  419. }
  420.  
  421. { TMPL_MON_USE
  422.     // THE MONITOR DOESN'T WORK IF THE ALIEN CITY IS DEACTIVATED OR IF THE
  423.     //   TUBE HAS NO POWER
  424.     I  ^çô              = $Ç╗    THEN
  425.         {
  426.         ^ìâ                 = 1
  427.         M      LOOK_AT_MON
  428.         W    1 SECOND
  429.         i           LEX TEMPMON1
  430.         é     
  431.         }
  432.  
  433.     // WE'VE SEEN THE ALIEN CITY, BUT THE TUBE'S NOT ACTIVATED
  434.     I  @ÇÅ     (^骠      ,1) = $Ç╗    THEN
  435.         {
  436.         M      LOOK_AT_MON
  437.         W    1 SECOND
  438.         i           LEX TEMPMON2
  439.         é     
  440.         }
  441.  
  442.     // CENTERED AT -90 - A LITTLE MORE LEEWAY TO THE RIGHT
  443.     I  ( @Çä      IN (-120,-50) ) THEN
  444.         {
  445.         M      LOOK_AT_MON
  446.         A  OFF
  447.         I  ^ìâ                 = 1 THEN
  448.             @Çì      ADDTEMPLEMONLOG3
  449.         @Ç¥   TS_CAMERAVIEWSOPENTEMPLE
  450.         A  ON
  451.         M      STAND CONTINUE
  452.         }
  453. }
  454.  
  455. { ADDTEMPLEMONLOG3
  456.     ^ìâ                 = 2
  457.     W    1 SECOND
  458.     i           LEX TEMPMON3
  459. }
  460.  
  461. // 7.36 TUBEWAY STATION/CAMERA VIEWS - OPEN TEMPLE
  462. // SHOWS VIEW INTO TEMPLE AND OPEN OR CLOSES IT.
  463. { TS_CAMERAVIEWSOPENTEMPLE
  464.     P        ~ÇÇ           
  465.  
  466.              "tmpm"
  467.     ^ìä                    = $Ç╝  
  468.  
  469.     // VIEWPORT INTO TEMPLE
  470.     C      UNLOCK
  471.     C      "TMP1"
  472.                       "tmpv" "tmp1"
  473.  
  474.     :INIT
  475.     // BUTTONS
  476.     // INIT TO NOT SELECTABLE
  477.     // ALLOW TO CLOSE FROM CURRENT _WAK_FRAME IF
  478.                     "opnb" $Ç░                
  479.                     "clsb" $Ç░                
  480.  
  481.     I  (^î╢        = $âï             ) THEN
  482.                         "opnb" $Ǽ        
  483.     E   
  484.         I  (^î╢        >= 22) THEN
  485.                             "clsb" $Ǽ        
  486.  
  487.                     "xitb" $Ǽ        
  488.  
  489.     :LOOP
  490.                
  491.         â      
  492.  
  493.         // ONCE THE PROCESS IS COMPLETED, RESET THE BUTTONS
  494.         //IF _PROCESSHANDLE AND @ISPROCESSVALID(_PROCESSHANDLE) = _FALSE THEN
  495.         //      {
  496.         //      _PROCESSHANDLE = 0
  497.         //      JUMP INIT
  498.         //      }
  499.  
  500.     J    #ǃ 
  501.  
  502.     :OPNB_BUTTON
  503.     @Çå   (`ëë          , 200)
  504.         // DISABLE BUTTON IF CURRENTLY CHANGING STATE OF TEMPLE ENTRANCE
  505.         // IT WOULD BE COOL TO LET PLAYER INTERCEPT THE CURRENT STATE OF THE
  506.         //    CLOSING DOOR AND HAVE IT REVERSE DIRECTION, BUT IT IS DIFFICULT
  507.         //    TO HANDLE THE SOUND EFFECTS DOING IT THIS WAY -BES
  508.         I  @Çó            (~ÇÇ           ) THEN J    #ǃ 
  509.         I  (^î╢        != $âî            ) THEN
  510.             {
  511.             ~ÇÇ            = @Çì      OPENTEMPLE
  512.                             "opnb" $Ç░                
  513.                             "clsb" $Ç░                
  514.  
  515.             :OPENTEMPLE_STATUS
  516.             â      
  517.                    
  518.             I  @Çó             ~ÇÇ            THEN J    #Çí              
  519.             ~ÇÇ            = 0
  520.                             "clsb" $Ǽ        
  521.             }
  522.     //JUMP INIT
  523.     J    #ǃ 
  524.  
  525.     :CLSB_BUTTON
  526.     @Çå   (`ëë          , 200)
  527.         I  @Çó            (~ÇÇ           ) THEN J    #ǃ 
  528.         I  (^î╢        != $âï             ) THEN
  529.             {
  530.             ~ÇÇ            = @Çì      CLOSETEMPLE
  531.                             "opnb" $Ç░                
  532.                             "clsb" $Ç░                
  533.  
  534.             :CLOSETEMPLE_STATUS
  535.             â      
  536.                    
  537.             I  @Çó             ~ÇÇ            THEN J    #Çú               
  538.             ~ÇÇ            = 0
  539.                             "opnb" $Ǽ        
  540.             }
  541.     //JUMP INIT
  542.     J    #ǃ 
  543.  
  544.     :XITB_BUTTON
  545.     :ESCAPE_BUTTON
  546.  
  547.     @Çå   (`ëè          )
  548.     @Ç¥   TS_SHUTDOWN_TEMPLE_MON
  549. }
  550.  
  551. { TS_SHUTDOWN_TEMPLE_MON _NO_FORCING_CAMERA
  552.     @Çå   (`ëè          , 200)
  553.     C      UNLOCK
  554.             ~ÇÇ               
  555.     ^ìä                    = $Ç╗   
  556. }
  557.  
  558. { CHECKACTIVATESHRIMP
  559.     P        ~ÇÇ 
  560.  
  561.     // IF SHRIMP IS DEAD AND SHRIMP TUBE STILL OPEN,
  562.     // WAIT ~SECOND THEN DROP ANOTHER OUT THE TUBE CHUTE
  563.     I  ( (^î₧            = $Ç╗   ) THEN
  564.         {
  565.         ~ÇÇ  = 0
  566.         I ( @ÇÅ     ( ^骠      , 8 ) ) THEN
  567.             ~ÇÇ  = 1
  568.         E    I ( @ÇÅ     ( ^骠      , 7 ) ) THEN
  569.             ~ÇÇ  = 2
  570.         E    I ( @ÇÅ     ( ^骠      , 5 ) ) THEN
  571.             ~ÇÇ  = 3
  572.         E    I ( @ÇÅ     ( ^骠      , 6 ) ) THEN
  573.             ~ÇÇ  = 4
  574.  
  575.         I ( ~ÇÇ  ) THEN
  576.             {
  577.             // CREATE THE SHRIMP HERE
  578.             // ..CREATE TAKES AWHLIE
  579.             F            SHRIMP
  580.             n             CURFIG SHRIMP3
  581.             ^î₧            = $Ç╝  
  582.  
  583.             @Ç¥   READY_SHRIMP3 ~ÇÇ 
  584.             @Ç¥   ACTIVATE_SHRIMP3
  585.             }
  586.         }
  587. }
  588.  
  589. //$ 26 - version number
  590.